package com.zretc.util;

import org.springframework.web.multipart.MultipartFile;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.io.File;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Util {
    /**
     * 生成现在的时间戳，可直接将timestamp直接编译进预编译语句
     *
     * @return Timestamp
     */
    public static String getNowTime() {
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(date);
        return format;
    }
    /**
     * @param inputText 需加密字符串
     * @return 加密后的字符串
     * @author Md5加密工具，32位加密
     */
    public static String getMd5(String inputText) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(inputText.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            return buf.toString();
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }

    //    public static boolean isMobileNO(String mobile) {
//        Pattern p = Pattern
//                .compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$");
//        Matcher m = p.matcher(mobile);
//        return m.matches();
//    }
    public static String getLogo(MultipartFile logo) {
        String sellerLogo = null;
        // 接收文件

        if (logo == null || logo.getSize() == 0) {
            //sellerLogo = null;
            // 没有上传文件
        } else {
            // 1获取文件名
            String fileName = logo.getOriginalFilename();// 1.jpg
            // 可以自定义文件名+文件后缀名
            // 1.1 获取文件后缀名
            String fileSuffix = fileName.substring(fileName.lastIndexOf("."));
            // 1.2 时间戳自定义文件名
            String dateStamp = System.currentTimeMillis() + "";
            // 1.3 存储文件名
            sellerLogo = dateStamp + fileSuffix;
            // 2.将文件存储到指定目录中
            // 将文件存储在指定服务器中(本地电脑E盘)
            File f = new File("D:/EDS/images/seller/" + sellerLogo);//  E:\fileupload\images\文件名.后缀名
            try {

                logo.transferTo(f);

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sellerLogo;
    }

    public static String getProductLogo(MultipartFile logo) {
        String productPicture = null;
        // 接收文件

        if (logo == null || logo.getSize() == 0) {
            //sellerLogo = null;
            // 没有上传文件
        } else {
            // 1获取文件名
            String fileName = logo.getOriginalFilename();// 1.jpg
            // 可以自定义文件名+文件后缀名
            // 1.1 获取文件后缀名
            String fileSuffix = fileName.substring(fileName.lastIndexOf("."));
            // 1.2 时间戳自定义文件名
            String dateStamp = System.currentTimeMillis() + "";
            // 1.3 存储文件名
            productPicture = dateStamp + fileSuffix;
            // 2.将文件存储到指定目录中
            // 将文件存储在指定服务器中(本地电脑E盘)
            File f = new File("D:/EDS/images/products/" + productPicture);//  E:\fileupload\images\文件名.后缀名
            try {

                logo.transferTo(f);

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return productPicture;
    }
}
